/**
 * All Rights Reserved , Copyright (C) 2021 , 青岛鼎信通讯股份有限公司
 *
 *MpmProjectReviewController
 * 项目复盘结项
 *
 * 修改纪录
 * 2021-01-18 版本：1.0 wudaliang 创建。
 * @version 版本：1.0
 * @author 作者：wudaliang
 * 创建日期：2021-01-18
 */

package com.topscomm.mpm.controller;

import com.alibaba.fastjson.JSON;
import com.topscomm.basic.exception.ServiceException;
import com.topscomm.basic.util.SQLAdapter;
import com.topscomm.mpm.MpmSystemConst;
import com.topscomm.mpm.controller.auto.MpmProjectReviewControllerAuto;
import com.topscomm.mpm.pojo.MpmProjectEntity;
import com.topscomm.mpm.pojo.MpmProjectReviewEntity;
import com.topscomm.mpm.pojo.MpmProjectSaleEntity;
import com.topscomm.mpm.service.IMpmProjectSaleService;
import com.topscomm.mpm.service.IMpmProjectService;
import com.topscomm.mpm.service.impl.MpmProjectReviewService;
import com.topscomm.mpm.service.impl.MpmProjectSaleService;
import com.topscomm.pub.util.*;
import com.topscomm.pub.vo.Page;
import com.topscomm.pub.vo.Query;
import com.topscomm.pub.vo.ResponseResult;
import com.topscomm.tap.common.TapSystemConst.TapOperationTypeEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;

import java.math.BigDecimal;
import java.text.NumberFormat;
import java.util.*;
import java.util.stream.Collectors;

/**
 * @author: wudaliang
 * @date: 2021-01-18
 * @description:项目复盘结项Controller
 * @modify:
 */
@RestController
@RequestMapping("mpm/projectReview")
public class MpmProjectReviewController extends MpmProjectReviewControllerAuto implements IMpmProjectReviewController {

	@Autowired
	private IMpmProjectService mpmProjectService;

	@Autowired
	private MpmProjectPolymerizationController mpmProjectPolymerizationController;
	@Autowired
	private MpmProjectSaleService mpmProjectSaleService;
	@Autowired
	private MpmProjectReviewService mpmProjectReviewService;

	/**
	 * @author: wudaliang
	 * @date: 2021-01-18
	 * @param paraMap
	 * @return
	 * @description:转换出查询SQL语句
	 * @modify:
	 */
	@Override
	protected String spellListSql(Map<String, Object> paraMap) {
		StringBufferProxy sql = new StringBufferProxy();
		sql.appendSingle(" enabled=1 ");
		if (paraMap.containsKey("qry_str")) {
			String value = paraMap.get("qry_str").toString();
			if (!StringUtil.isEmpty(value))
				sql.appendSingle(" and (projectname like '%{0}%' or projectcode = '{0}')", value);
		}
		if (paraMap.containsKey("qry_docno")) {
			String value = paraMap.get("qry_docno").toString();
			if (!StringUtil.isEmpty(value))
				sql.appendSingle(" and docno like '%{0}%'", value);
		}
		if (paraMap.containsKey("qry_begindocdate")) {
			String value = paraMap.get("qry_begindocdate").toString();
			if (!StringUtil.isEmpty(value))
				sql.appendSingle(" and docdate >= {0} ", SQLAdapter.toDateLong(value + " 00:00:00"));
		}
		if (paraMap.containsKey("qry_enddocdate")) {
			String value = paraMap.get("qry_enddocdate").toString();
			if (!StringUtil.isEmpty(value))
				sql.appendSingle(" and docdate <= {0}", SQLAdapter.toDateLong(value + " 23:59:59"));
		}
		if (paraMap.containsKey("qry_deptname")) {
			String value = paraMap.get("qry_deptname").toString();
			if (!StringUtil.isEmpty(value))
				sql.appendSingle(" and (deptid in ( SELECT id from CboDept where fullname like '%{0}%'))", value);
		}
		if (paraMap.containsKey("qry_username")) {
			String value = paraMap.get("qry_username").toString();
			if (!StringUtil.isEmpty(value))
				sql.appendSingle(" and (username like '%{0}%')", value);
		}
//		if (paraMap.containsKey("qry_usercode")) {
//			String value = paraMap.get("qry_usercode").toString();
//			if (!StringUtil.isEmpty(value))
//				sql.appendSingle(" and usercode = '{0}'", this.getUserBean().getUser().getCode());
//		}
		if (paraMap.containsKey("qry_deptcode")) {
			String value = paraMap.get("qry_deptcode").toString();
			if (!StringUtil.isEmpty(value))
				sql.appendSingle(" and deptcode like '{0}%'", value);
		}
		if (paraMap.containsKey("qry_reviewcode")) {
			String value = paraMap.get("qry_reviewcode").toString();
			if (!StringUtil.isEmpty(value))
				sql.appendSingle(" and reviewcode = '{0}'", value);
		}
		if (paraMap.containsKey("qry_state")) {
			String value = paraMap.get("qry_state").toString();
			if (!StringUtil.isEmpty(value))
				sql.appendSingle(" and state={0}", value);
		}
		if (paraMap.containsKey("qry_projectcode")) {
			String value = paraMap.get("qry_projectcode").toString();
			if (!StringUtil.isEmpty(value))
				sql.appendSingle(" and projectcode = '{0}'", value);
		}
		if (paraMap.containsKey("qry_open")) {
			String value = paraMap.get("qry_open").toString();
			if (!StringUtil.isEmpty(value)) {
				sql.appendSingle(" and exists (select 1 from MpmProject where MpmProjectReview.projectcode = " +
						"MpmProject.projectcode and MpmProject.open = {0})", value);
			}
		}
		if (paraMap.containsKey("qry_where")) {
			String value = paraMap.get("qry_where").toString();
			if (!StringUtil.isEmpty(value))
				sql.appendSingle(" and {0}", value);
		}
		return sql.toString();
	}

	/**
	 * @author: houyuhang
	 * @date: 2022-02-14
	 * @param paraMap
	 * @return
	 * @description: 项目复盘转换出查询SQL语句
	 * @modify:
	 */
	protected String spellListSqlForReviewList(Map<String, Object> paraMap) {
		StringBufferProxy sql = new StringBufferProxy();
		sql.appendSingle(" enabled=1 ");
		if (paraMap.containsKey("qry_str")) {
			String value = paraMap.get("qry_str").toString();
			if (!StringUtil.isEmpty(value))
				sql.appendSingle(" and (projectname like '%{0}%' or projectcode = '{0}')", value);
		}
		if (paraMap.containsKey("qry_docno")) {
			String value = paraMap.get("qry_docno").toString();
			if (!StringUtil.isEmpty(value))
				sql.appendSingle(" and docno like '%{0}%'", value);
		}
		if (paraMap.containsKey("qry_begindocdate")) {
			String value = paraMap.get("qry_begindocdate").toString();
			if (!StringUtil.isEmpty(value))
				sql.appendSingle(" and docdate >= {0} ", SQLAdapter.toDateLong(value + " 00:00:00"));
		}
		if (paraMap.containsKey("qry_enddocdate")) {
			String value = paraMap.get("qry_enddocdate").toString();
			if (!StringUtil.isEmpty(value))
				sql.appendSingle(" and docdate <= {0}", SQLAdapter.toDateLong(value + " 23:59:59"));
		}
		if (paraMap.containsKey("qry_deptname")) {
			String value = paraMap.get("qry_deptname").toString();
			if (!StringUtil.isEmpty(value))
				sql.appendSingle(" and (deptid in ( SELECT id from CboDept where fullname like '%{0}%'))", value);
		}
		if (paraMap.containsKey("qry_username")) {
			String value = paraMap.get("qry_username").toString();
			if (!StringUtil.isEmpty(value))
				sql.appendSingle(" and (username like '%{0}%')", value);
		}
//		if (paraMap.containsKey("qry_usercode")) {
//			String value = paraMap.get("qry_usercode").toString();
//			if (!StringUtil.isEmpty(value))
//				sql.appendSingle(" and usercode = '{0}'", this.getUserBean().getUser().getCode());
//		}
		if (paraMap.containsKey("qry_deptcode")) {
			String value = paraMap.get("qry_deptcode").toString();
			if (!StringUtil.isEmpty(value))
				sql.appendSingle(" and deptcode like '{0}%'", value);
		}
		if (paraMap.containsKey("qry_reviewcode")) {
			String value = paraMap.get("qry_reviewcode").toString();
			if (!StringUtil.isEmpty(value))
				sql.appendSingle(" and reviewcode = '{0}'", value);
		}
		if (paraMap.containsKey("qry_state")) {
			String value = paraMap.get("qry_state").toString();
			if (!StringUtil.isEmpty(value))
				sql.appendSingle(" and state={0}", value);
		}
		if (paraMap.containsKey("qry_projectcode")) {
			String value = paraMap.get("qry_projectcode").toString();
			if (!StringUtil.isEmpty(value))
				sql.appendSingle(" and projectcode = '{0}'", value);
		}
		if (paraMap.containsKey("qry_open")) {
			String value = paraMap.get("qry_open").toString();
			if (!StringUtil.isEmpty(value)) {
				sql.appendSingle(" and exists (select 1 from MpmProject where MpmProjectReview.projectcode = " +
						"MpmProject.projectcode and MpmProject.open = {0})", value);
			}
		}
		if (paraMap.containsKey("qry_where")) {
			String value = paraMap.get("qry_where").toString();
			if (!StringUtil.isEmpty(value))
				sql.appendSingle(" and {0}", value);
		}
		if (this.getUserBean().getUser().getAdminlevel() < 1)// 管理员、超级管理员，不控制权限
		{
			String dataPession = service.getDataPermission(TapOperationTypeEnum.Select, "", this.getUserBean());
			if (StringUtil.isEmpty(dataPession))// 默认权限只能看本人，部门负责人为自己的部门和下级部门的数据
			{
				sql.appendSingle("and usercode='{0}'",this.getUserBean().getUser().getCode());
//				String deptcodes_header = ConvertUtil.convertToString(this.getUserBean().getUser().getValue("deptcodes_header"));
//				if (StringUtil.isEmpty(deptcodes_header))
//					sql.appendSingle(" and (usercode = '{0}' or deptcode ='{1}' or deptcode = '{2}' )", this.getUserBean().getUser().getCode(), this.getUserBean().getDept().getCode(), this
//							.getUserBean().getWorkDept().getCode());
//				else
//					sql.appendSingle(" and (deptcode in ({0})  or usercode = '{1}' or deptcode ='{2}' or deptcode = '{3}' )", deptcodes_header, this.getUserBean().getUser().getCode(), this
//							.getUserBean().getDept().getCode(), this.getUserBean().getWorkDept().getCode());
			} else// 使用数据权限
			{
				sql.appendSingle(" and {0} ", dataPession);
			}
		}
		return sql.toString();
	}

	/**
	 * @author: wudaliang
	 * @date: 2021-01-18
	 * @param paraMap
	 * @return
	 * @description:转换出查询SQL语句
	 * @modify:
	 */
	@Override
	@GetMapping(value = "/refList")
	public ResponseResult<Object> refList(@RequestParam(required = false) Map<String, Object> paraMap) {
		return super.refList(paraMap);
	}

	/**
	 *
	 * @description: 提交审批前
	 * @param dataMap
	 * @param paraMap
	 * @throws Exception
	 * @author: wudaliang
	 * @date: 2021-01-18
	 * @modify:
	 */
	@Override
	protected void beforeSubmit(Map<String, Object> dataMap, Map<String, Object> paraMap) throws Exception {
		super.beforeSubmit(dataMap, paraMap);
		// 判断是否完成了里程碑及任务总结
		if (!this.service.judgeFinishProcessAnalysis(paraMap)) {
			throw new ServiceException("请完成里程碑及任务总结！");
		}
		StringBufferProxy mailtitle = new StringBufferProxy();
		mailtitle.appendSingle("{0}{1}于{2}提交项目复盘结项申请", dataMap.get("dispdeptcode"), dataMap.get("username"), DateUtil.dateToString(new Date(), "yyyy-MM-dd"));
		dataMap.put("maintitle", mailtitle.toString());
	}

	@PutMapping({"/approval"})
	@Override
	public ResponseResult<Object> approval(@RequestBody(required = false) Map<String, Object> paraMap) {
		try {
			String approvalOpinion = paraMap.get("approvalopinion").toString();
			String approvalType = paraMap.get("approvaltype").toString();
			String nodeInsId = paraMap.get("nodeinsid").toString();
			String backNodeId = ConvertUtil.convertToString(paraMap.get("backnodeid"));
			long nextUserId = 0L;
			if (paraMap.containsKey("nextuserid") && !StringUtil.isEmpty(paraMap.get("nextuserid").toString())) {
				nextUserId = Long.parseLong(paraMap.get("nextuserid").toString());
			}
			if("".equals(approvalOpinion)&&"1".equals(approvalType)){
				approvalOpinion="同意";
			}
			this.service.executeApprove(nodeInsId, new Date(), approvalOpinion, approvalType, backNodeId, this.getUserBean(), nextUserId);
			return ResponseResult.ok("操作成功");
		} catch (Exception var8) {
			return this.handleControllerException(var8);
		}
	}

	/**
	 * @author: chengengwei
	 * @date: 2021-07-31
	 * @description: 删除复盘信息的同时删除中标信息
	 * @modify:
	 */
	@DeleteMapping({"/deleteReviewAndWinBidInfo"})
	public ResponseResult<Object> deleteReviewAndWinBidInfo(@RequestBody(required = false) Map<String, Object> paraMap) {
		try {
			this.service.deleteReviewAndWinBidInfo(paraMap);
			return ResponseResult.ok("删除成功");
		} catch (Exception var3) {
			return this.handleControllerException(var3);
		}
	}

	/**
	 * @author: chengengwei
	 * @date: 2021-08-28
	 * @description: 修改项目是否公开的权限
	 * @modify:
	 */
	@PutMapping({"/changePermission"})
	public ResponseResult<Object> changePermission(@RequestBody(required = false) Map<String, Object> paraMap) {
		try {
			return ResponseResult.ok(this.service.changePermission(paraMap));
		} catch (Exception e) {
			return this.handleControllerException(e);
		}
	}

	/**
	 * @author: chengengwei
	 * @date: 2021-09-01
	 * @description: 判断为正常结项还是异常结项
	 * @modify:
	 */
	@GetMapping(value = "/judegEndTpye")
	public ResponseResult<Object> judegEndTpye(@RequestParam(required = false) Map<String, Object> paraMap) {
		try {
			Map<String, Object> resultMap = new HashMap<>();
			// 正常结项
			if (this.service.judegEndTpye(paraMap)) {
				resultMap.put("endtype", MpmSystemConst.ProjectEndType.Normal);
			} else {
				// 异常结项
				resultMap.put("endtype", MpmSystemConst.ProjectEndType.Abnormal);
			}
			// 获取采购模式
			String projectcode = paraMap.get("qry_projectcode").toString();
			StringBufferProxy sql = new StringBufferProxy();
			sql.appendSingle("id in (select id from {0} where projectcode = '{1}')",MpmProjectEntity.tableName,projectcode);
			MpmProjectSaleEntity saleEntity = mpmProjectSaleService.queryObjectByWhere(sql.toString());
			if(saleEntity!= null) {
				resultMap.put("purchasepattern",saleEntity.getPurchasepattern());
			} else {
				resultMap.put("purchasepattern","");
			}
			return ResponseResult.ok(resultMap);
		} catch (Exception e) {
			return this.handleControllerException(e);
		}
	}

	/**
	 * @author: chengengwei
	 * @date: 2021-08-28
	 * @description: 重写复盘列表接口，关联项目的open字段值
	 * @modify:
	 * @description: 项目复盘接口，关联项目的open字段值
	 * @modify: houyuhang 2022-02-14
	 */
	@GetMapping(value = "/queryReviewList")
	public ResponseResult<Object> queryReviewList(@RequestParam(required = false) Map<String, Object> paraMap) {
		try {
			paraMap = BaseUtil.decodeSecureMap(paraMap);
			Query query = new Query(paraMap);
			String sqlWhere = this.spellListSqlForReviewList(paraMap);
			int totalCount = this.service.getCount(sqlWhere);
			List<Map<String, Object>> tempList = null;
			if (query.getPageSize() > 0) {
				tempList = this.service.queryMapForPage(sqlWhere, query.getCurrentPage(), query.getPageSize(),
						query.getSidx(), query.getSord());
			} else {
				tempList = this.service.queryMapByWhere(sqlWhere);
			}
			// 获取关联的所有项目
			String projectcodes = tempList.stream().map(item -> item.get(MpmProjectReviewEntity.FieldProjectcode).toString())
					.distinct().collect(Collectors.joining("','", "'", "'"));
			StringBufferProxy whereSql = new StringBufferProxy();
			whereSql.appendSingle(" projectcode in ({0}) ", projectcodes);
			// 查询projectcode、open、部门名称、项目级别、项目经理
			List<String> fieldList = new ArrayList<>();
			fieldList.add(MpmProjectEntity.FieldProjectcode);
			fieldList.add(MpmProjectEntity.FieldOpen);
			fieldList.add(MpmProjectEntity.FieldDeptname);
			fieldList.add(MpmProjectEntity.FieldProjectlevel);
			fieldList.add(MpmProjectEntity.FieldProjectmanager);
			List<Map<String, Object>> openStateList = this.mpmProjectService.queryMapFieldsByWhere(whereSql.toString(),
					fieldList);
			// 按projectcode分组
			Map<String, List<Map<String, Object>>> openStateMapList = openStateList.stream().collect(Collectors
					.groupingBy(item -> item.get("projectcode").toString()));
			// 向结果集中添加open、部门名称、项目级别、项目经理字段
			tempList.forEach(item -> {
				if (openStateMapList.get(ConvertUtil.convertToString(item.get("projectcode"))) != null) {
					Map<String, Object> openStateMap = openStateMapList.get(item.get("projectcode").toString()).get(0);
					if (openStateMap != null) {
						item.put("open", openStateMap.get("open"));
						item.put("deptname", openStateMap.get("deptname"));
						item.put("dispprojectlevel", datacodeCache.getValueDynamic("MpmProjectLevel",
								openStateMap.get("projectlevel").toString(), "code", "name"));
						item.put("projectmanager", openStateMap.get("projectmanager"));
					}
				}
			});
			Page page = new Page(tempList, totalCount, query.getPageSize(), query.getCurrentPage());
			return ResponseResult.ok(page);
		} catch (Exception ex) {
			return handleControllerException(ex);
		}
	}

	/**
	 * @author: chengengwei
	 * @date: 2021-09-03
	 * @description: 查询当前用户可查看的与公开的记录，且项目已结项
	 * @modify:
	 */
	@GetMapping(value = "/listForOpen")
	public ResponseResult<Object> listForOpen(@RequestParam(required = false) Map<String, Object> paraMap) {
		try {
			if(!paraMap.containsKey("opensid")) {
				paraMap = BaseUtil.decodeSecureMap(paraMap);
			}
			Query query = new Query(paraMap);
			StringBufferProxy whereSql = new StringBufferProxy();
			// 是否公开作为and条件拼接
			whereSql.appendSingle(" exists (select 1 from mpmproject where mpmproject.projectcode = mpmprojectreview.projectcode and {0}.{1} in ('2', '8') and {2} = '1' ",
					MpmProjectEntity.tableName, MpmProjectEntity.FieldProjectstate, MpmProjectEntity.FieldOpen);
			if (paraMap.containsKey("qry_projectname")) {
				String value = paraMap.get("qry_projectname").toString();
				if (!StringUtil.isEmpty(value))
					whereSql.appendSingle(" and mpmproject.projectname like '%{0}%' ", value);
			}
			if (paraMap.containsKey("qry_projectcode")) {
				String value = paraMap.get("qry_projectcode").toString();
				if (!StringUtil.isEmpty(value))
					whereSql.appendSingle(" and mpmproject.projectcode like '%{0}%' ", value);
			}
			whereSql.appendSingle(" ) ");
			int totalCount = this.service.getCount(whereSql.toString());
			List<Map<String, Object>> tempList = null;
			if (query.getPageSize() > 0) {
				tempList = this.service.queryMapForPage(whereSql.toString(), query.getCurrentPage(), query.getPageSize(),
						query.getSidx(), query.getSord());
			} else
				tempList = this.service.queryMapByWhere(whereSql.toString());
			this.service.getProjectInfo(tempList);
			Page page = new Page(tempList, totalCount, query.getPageSize(), query.getCurrentPage());
			return ResponseResult.ok(page);
		} catch (Exception ex) {
			return handleControllerException(ex);
		}
	}

	/**
	 *
	 * @param paraMap
	 * @author zhangjunyao
	 * @date 2022-02-16
	 * @description 判断是否已经提交复盘
	 * @return boolean
	 */
	@GetMapping(value = "/ifReviewed")
	public ResponseResult<Object> ifReviewed(@RequestParam(required = false) Map<String, Object> paraMap) {
		try {
			paraMap = BaseUtil.decodeSecureMap(paraMap);
			String projectCode = "";
			if (paraMap.containsKey("projectcode")) {
				projectCode = ConvertUtil.convertToString(paraMap.get("projectcode"));
			}
			boolean ifReviewed = this.service.ifReviewed(projectCode);
			return ResponseResult.ok(ifReviewed);
		} catch (Exception ex) {
			return this.handleControllerException(ex);
		}
	}
	/**
	 * @author houyuhang
	 * @Description 判断项目是否为A级（非电商、其他、服务招标采购、单一来源采购）项目
	 * @Date 2022/05/23
	 * @return
	 **/
	public boolean judgeProjectALevelForBidScore(String projectcode) {
		StringBufferProxy sql = new StringBufferProxy();
		sql.appendSingle(" projectcode = '{0}' and projectlevel = '{1}' and {2} = '{3}' ",
				projectcode, MpmSystemConst.ProjectLevel.A, MpmProjectSaleEntity.FieldPurchasepattern, MpmSystemConst.PurchasePattern.chanpinBid);
		Map<String, Object> dataMap = new HashMap<>();
		dataMap.put("whereSql",sql.toString());
		int count = mpmProjectService.getCount(dataMap,"projectALevel");
		return count > 0;
	}
	/**
	 *
	 * @param paraMap
	 * @author houyuhang
	 * @date 2022-08-01
	 * @description 数据为开立、退回的老数据，从投标拉取中标信息，关联了中标项目返回true，否则返回false
	 * @return boolean
	 */
	@GetMapping(value = "/getBidGuideInfo")
	public ResponseResult<Object> getBidGuideInfo(@RequestParam(required = false) Map<String, Object> paraMap) {
		try {
			paraMap = BaseUtil.decodeSecureMap(paraMap);
			boolean res = this.service.getBidGuideInfo(paraMap);
			return ResponseResult.ok(res);
		} catch (Exception ex) {
			return this.handleControllerException(ex);
		}
	}
	/**
	 *
	 * @param paraMap
	 * @author houyuhang
	 * @date 2022-08-01
	 * @description 复盘数据加载后，获取项目等级信息
	 * @return boolean
	 */
	@Override
	protected void afterLoad(Map<String, Object> paraMap) {
		String projectCode = ConvertUtil.convertToString(paraMap.get("projectcode"));
		StringBufferProxy sql = new StringBufferProxy();
		sql.appendSingle(" projectcode = '{0}' ", projectCode);
		List<MpmProjectEntity> mpmProjectInfoList = mpmProjectService.queryByWhere(sql.toString());
		if (CollectionUtils.isEmpty(mpmProjectInfoList)) {
			return;
		}
		MpmProjectEntity mpmProjectInfo = mpmProjectInfoList.get(0);
		paraMap.put("projectlevel", mpmProjectInfo.getProjectlevel());
		paraMap.put("dispprojectlevel", datacodeCache.getValueDynamic("MpmProjectLevel", mpmProjectInfo.getProjectlevel(), "code", "name"));
	}
	/**
	 * @param paraMap
	 * @author houyuhang
	 * @date 2022-12-15
	 * @description 保存项目类型(销售类、推广类)信息
	 */
	@PutMapping(value = "/savePmoProjectType")
	public ResponseResult<Object> savePmoProjectType(@RequestBody(required = false) Map<String, Object> paraMap) {
		try {
			mpmProjectReviewService.savePmoProjectType(paraMap);
			return ResponseResult.ok("保存成功");
		} catch (Exception ex) {
			return this.handleControllerException(ex);
		}
	}
	/***
	 * @description: 获取实开周会信息
	 * @return
	 * @author: houyuhang
	 * @date: 2022/12/15
	 * @modify:
	 */
	@PostMapping(value="/queryReviewMeetInfo")
	public ResponseResult<Object> queryReviewMeetInfo(@RequestHeader(value = "Authorization") String token, @RequestBody(required = false) Map<String,Object> paraMap) {
		try {
			boolean res = mpmProjectService.queryReviewMeetInfo(token, paraMap);
			return ResponseResult.ok(res);
		}  catch (Exception ex) {
			return this.handleControllerException(ex);
		}
	}
	/***
	 * @description: 获取历史复盘信息
	 * @return
	 * @author: houyuhang
	 * @date: 2023/04/13
	 * @modify:
	 */
	@GetMapping(value="/getReviewForBidScore")
	public ResponseResult<Object> getReviewForBidScore(@RequestParam(required = false) Map<String,Object> paraMap) {
		try {
			Page page = this.service.getReviewForBidScore(paraMap);
			return ResponseResult.ok(page);
		}  catch (Exception ex) {
			return this.handleControllerException(ex);
		}
	}
}

